#ifndef DBOPERATIONVERSION_H_JM_20130209
#define DBOPERATIONVERSION_H_JM_20130209
/// @file DbOperationVersion.h urcenie prevedenia db opercie - bag alebo set.
#include "../runtime/BoxParameterPack.h"


namespace jm4bbx {

	/**
	 * Rozlisenie prevedenie db operacie (bag a set) pomocou parametru definicie
	 * boxu. Tato trieda nie je zamyslana ako samostatny box ale ako sucast 
	 * nejakeho boxu, ktory bykonava db operaciu a na zaklade verzie trochu 
	 * poupravi svoje chovanie. Jedna sa o opakovany kod tak preto je to vynate 
	 * von. 
	 **/
	class  DbOperationVersion {
	public:
		static const char* DB_OPERATION_VERSION_PARAM_NAME;
		enum DbOperationVersionType {BAG_VERSION, SET_VERSION };

		DbOperationVersion(const BoxParamPack& paramsPack);
		virtual ~DbOperationVersion() {}

		bool isSetVersion() const { return version_ == SET_VERSION; }
		bool isBagVersion() const { return version_ == BAG_VERSION; }
		DbOperationVersionType getVersion() const { return version_; }
	private:
		DbOperationVersionType version_;
	};

	

} // namespace jm4bbx


#endif
